Computer based information systems are in widespread use today, ranging from simple small area file-sharing networks to global and sophisticated computer networked databases which provide the backbone for today's World Wide Web.
Generally, a user can access information stored on computer networked databases utilizing a client application such as a Windows™ application, which resides at the user's location such as on the user's personal computer. The client application is typically interfaced to a data-access system which is in turn interfaced to the computer networked database at a local or remote location. Pursuant to a request by a user to obtain a desired information, the client application communicates with the data-access system which in turn communicates with and queries the computer networked database for the requested information. Once the information is found, it is forwarded to the client application via the data-access system for presentation to the user.
Computer networked databases are generally designed to store data in data tables. Each table typically contains a set of rows, with each row having column-attributes in which the data is stored. For ease of search and access, information stored in each table is often categorized based on predetermined characteristics of the stored data. For example, in a university database system a table may be devoted to store information on the faculties where each row in the table contains the name of one faculty member, and where the information about that member such as age, identification numbers and years of experience are each stored in a separate column-attribute of that row. Still, another table may be similarly devoted to the names and description of courses offered by the university.
When a particular information is frequently needed that involves data stored in more than one table, such as determining what courses a faculty member is teaching during a semester, a logical link is established between the one or more tables containing the information. An advantage of this technique is the resulting reduction in excessive duplication of the same data on various tables which squanders memory space in the system. Another advantage is the facilitating of the modification of the data by limiting the scope of the data modification to one or few tables. A logical relationship, such as a link, is thus established between the faculty members table and the courses table. Generally, this logical relationship connects a row in the first table, called the referencing table, to a particular row in the second table, called the referenced table. The data on this logical relationship is then stored in a column-attribute of a row in the referencing table. For example, to show that Professor Smith teaches Calculus III, a logical relationship is established between the row in the faculty table containing data on Professor Smith, which points to the row in the courses table containing data on Calculus III. The data on this logical relationship is then stored in a column-attribute of the row containing data on Professor Smith. A user, such as a student who seeks information on what course Professor Smith teaches, can then query the faculties table for Professor Smith and be directed by the logical relationship data to the row in the courses table containing data on Calculus III.
Currently, data-access systems play an important role in establishing an interface between the client application and the computer networked database server. A key feature of a data-access system is the ability to query a networked database for information request by a client application. Such data-access systems are implemented based on data-access models which provide underlying standard data access specifications for the data-access system. One form of such data-access model is the Object Linking and Embedding Database (OLE DB) Data Access on which an OLE DB data-access system is based.
While in widespread use today, OLE DB-based data-access systems are not without shortcomings. Although the OLE DB model provides a rich repertoire of data types and specifies an extensive set of Component Object Model (COM) interfaces that provide applications with uniform access to data stored in diverse information sources, the concept of logical relationship data is foreign to the model. This lack of data type and functional support in the OLE DB model for access to logical relationship data results in the inability of an OLE DB-based data-access system to obtain logical relationship data from a computer networked database. This shortcoming in turn prevents a client application such as a Windows™ application to access logical relationship data in the computer networked database. Under this circumstance, a user in the example above would not be able to obtain information on what course Professor Smith teaches because the logical relationship link pointing to the courses table will remain hidden from the OLE DB data-access system interfacing with the university's computer networked database. This will in turn disadvantageously limits the scope of data that can be retrieved from a computer networked database by a user.
An ongoing need thus exists to allow a client application using an OLE DB data-access system to interface with a computer networked database to access logical relationship data in the computer networked database.